home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / u_man / cat1 / f77.z / f77
Text File  |  1998-10-21  |  78KB  |  1,395 lines

  1. F77(1)                                                Last changed: 2-21-98
  2.  
  3.  
  4. NNAAMMEE
  5.      ff7777, ffoorrtt7777 - MIPS and MIPSpro F77 compiler
  6.  
  7. SSYYNNOOPPSSIISS
  8.      ff7777 [----] [--6644] [--aalliiggnn_n] [--aannssii[[_a_r_g]]] [--aavvooiidd__ggpp__oovveerrffllooww]
  9.      [--bbaacckkssllaasshh] [--cc] [--cchhaarraarrgg11] [--cchhuunnkk==_i_n_t_e_g_e_r] [--ccooll_n] [--ccoorrdd] [--ccpppp]
  10.      [--ccrraayylliibbss] [--DD_n_a_m_e==[[_d_e_f]]] [--DDEEBBUUGG::......]  [--dd_n] [--dd__lliinneess]
  11.      [--dduummpp__iinnppuutt] [--EE] [--eexxppaanndd__iinncclluuddee] [--eexxtteenndd__ssoouurrccee] [--FFLLIISSTT::......]
  12.      [--ffbb_f_i_l_e] [--ffee] [--ffeeeeddbbaacckk] [--GG_n_u_m] [--gg_l_e_v_e_l] [--hheellpp] [--II] [--ii_n]
  13.      [--iiggnnoorree__ssuuffffiixx] [--IINNLLIINNEE::......]  [--IIPPAA::......]  [--kkeeeepp] [--kkeeeeppddoollllaarr]
  14.      [--KKPPIICC] [--LL_d_i_r_e_c_t_o_r_y] [--ll_l_i_b_r_a_r_y] [--LLAANNGG::rreeccuurrssiivvee==_f_l_a_g] [--LLIISSTT::......]
  15.      [--lliissttiinngg] [--LLNNOO::......]  [--MM] [--MMDDuuppddaattee_f_i_l_e_n_a_m_e] [--MMPP::......]  [--mmiippss_n]
  16.      [--mmpp] [--mmpp__kkeeeepp] [--mmppiioo] [--mmpp__sscchheeddttyyppee==_t_y_p_e] [--nn3322] [--NNCC_n_n_n]
  17.      [--nnooaappppeenndd] [--nnooccpppp] [--nnooeexxppoopptt] [--nnooeexxtteenndd__ssoouurrccee] [--nnooff7777] [--nnooii44]
  18.      [--nnoonn__sshhaarreedd] [--nnoossttddiinncc] [--oonneettrriipp] [--oo_o_u_t_p_u_t] [--OO_l_e_v_e_l] [--OOPPTT::......]
  19.      [--PP] [--ppffaa[[_a_r_g]]] [--ppffaapprreeppaassss] [--rr_n] [--rr55000000] [--rr88000000] [--rr1100000000] [--SS]
  20.      [--sshhooww] [--sshhooww__ddeeffaauullttss] [--ssttaattiicc] [--TTAARRGG::......]  [--TTEENNVV::......]  [--UU_n_a_m_e]
  21.      [--uussee__rreeaaddwwrriittee__ccoonnsstt||--uussee__rreeaaddoonnllyy__ccoonnsstt] [--vveerrssiioonn] [--wwooffff_n_u_m_b_e_r]
  22.      [--xxggoott] _f_i_l_e.[_s_u_f_f_i_x]
  23.  
  24. IIMMPPLLEEMMEENNTTAATTIIOONN
  25.      IRIX systems
  26.  
  27. MMAANN PPAAGGEE OORRGGAANNIIZZAATTIIOONN
  28.      This man page describes each option to the ff7777 compiler command.
  29.  
  30.      The man page is divided into the following subsections:
  31.  
  32.      * DESCRIPTION, which provides a general overview about the compiler.
  33.  
  34.      * ISA/ABI COMMAND LINE OPTIONS, which describes the specific command
  35.        line options needed to select a specific Application Binary
  36.        Interface (ABI) or Instruction Set Architecture (ISA).
  37.  
  38.      * OPTION DESCRIPTIONS, which provides a complete description of each
  39.        compiler option.  The options are described in alphabetical order.
  40.  
  41.      * OPTIONS FOR DEVELOPMENT, which lists several options used to aid
  42.        compiler development and which are not generally used.
  43.  
  44.      The information for the --oo3322 ABI is no longer included on this man
  45.      page.  See the oo3322(5) man page for details.
  46.  
  47.      All optimization information has also been moved from this man page
  48.      and is now on separate man pages.  See the LLNNOO(5) man page and the
  49.      OOPPTT(5) man page for information about the --LLNNOO and the --OOPPTT options.
  50.  
  51. DDEESSCCRRIIPPTTIIOONN
  52.      The SGI Fortran 77 compiler supports three different Application
  53.      Binary Interfaces (ABI) controlled by the --oo3322, --nn3322, and --6644 options
  54.      (see aabbii((55)) for information about the Application Binary Interface).
  55.      The --oo3322 options are described on the oo3322(5) man page.
  56.  
  57.      The compiler produces files in the following formats:
  58.  
  59.      * SGI object code in eellff format (the normal result)
  60.  
  61.      * binary intermediate files
  62.  
  63.      * symbolic assembly language
  64.  
  65.      * binary ucode files (--oo3322 only)
  66.  
  67.      ff7777 accepts several types of arguments:
  68.  
  69.      * Arguments with names ending with ..ff or ..FF are assumed to be FORTRAN
  70.        77 source programs.  The programs are compiled, and each object
  71.        program is left in a file named with the last component of the
  72.        source, with ..oo substituted for the ..ff or ..FF extensions.  The ..oo
  73.        file is deleted only when a single source program is compiled and
  74.        loaded at one time.
  75.  
  76.      * Arguments with names ending with ..ss are assumed to be symbolic
  77.        assembly language source programs.  When these programs are
  78.        assembled, they produce a ..oo file.
  79.  
  80.      * Arguments with names ending with ..ii are assumed to be ff7777 source
  81.        after being processed by the C preprocessor.  They are compiled
  82.        without predefining any symbols.  The --nnooccpppp option is ignored when
  83.        compiling ..ii files.
  84.  
  85.      The following are the predefined symbols used by ff7777 for ..ff or ..FF
  86.      files:
  87.  
  88.           LLAANNGGUUAAGGEE__FFOORRTTRRAANN              __LLAANNGGUUAAGGEE__FFOORRTTRRAANN
  89.  
  90.           MMIIPPSSEEBB                        __MMIIPPSSEEBB
  91.  
  92.           mmiippss                          hhoosstt__mmiippss
  93.  
  94.           ____hhoosstt__mmiippss                   ssggii
  95.  
  96.           ____ssggii                         __SSGGII__SSOOUURRCCEE
  97.  
  98.           __SSYYSSTTYYPPEE__SSVVRR44                 __SSVVRR44__SSOOUURRCCEE
  99.  
  100.           uunniixx                          ____uunniixx
  101.  
  102.      ff7777 defines the LLAANNGGUUAAGGEE__AASSSSEEMMBBLLYY and __LLAANNGGUUAAGGEE__AASSSSEEMMBBLLYY preprocessor
  103.      symbols when a ..ss file is being compiled.  Use the ff7777 --sshhooww command
  104.      to check the definitions that are in use.
  105.  
  106.    OOppttiioonn ggrroouuppss
  107.      Many ff7777 options can be divided into _o_p_t_i_o_n _g_r_o_u_p_s of related options;
  108.      for example, those that specify optimization choices, or that specify
  109.      target machine attributes.
  110.  
  111.      The following is the command line format for group options:
  112.  
  113.           -_g_r_o_u_p_n_a_m_e::_o_p_t_i_o_n[==_v_a_l_u_e]][[::_o_p_t_2[[==_v_a_l_2]]]]......
  114.  
  115.      The group name is followed by a colon-separated list of options.
  116.      These options are composed of an option name which can be followed by
  117.      an equal sign and a value.  The option name can be abbreviated by
  118.      truncating it to a unique prefix; note that the abbreviation may
  119.      change when new options are added to the group.
  120.  
  121.      These option groups are available only when compiling with --nn3322 or
  122.      --6644.
  123.  
  124.      The options described on this man page are interpreted by ff7777.  See lldd
  125.      (1) for load-time options.
  126.  
  127. IISSAA//AABBII CCOOMMMMAANNDD LLIINNEE OOPPTTIIOONNSS
  128.      The following options control the choice of ABI and Instruction Set
  129.      Architecture (ISA).
  130.  
  131.      --oo3322 or --3322    Generate a 32-bit object.  This defaults to --mmiippss22 if
  132.                     --mmiippss11 is not specified.  This is the default when
  133.                     compiling on any non-R8000 based system, if no default
  134.                     specification file is present.  See the oo3322(5) man page
  135.                     for details.
  136.  
  137.      --6644            Generate a 64-bit object.  This defaults to --mmiippss44 if
  138.                     --mmiippss33 is not specified.  This is the default when
  139.                     compiling on any R8000 based system, if no default
  140.                     specification file is present.  See the Defaults
  141.                     Specification Files subsection at the end of this man
  142.                     page for details.
  143.  
  144.      --nn3322           Generate an nn3322 object.  This defaults to --mmiippss33 if
  145.                     --mmiippss44 is not specified.
  146.  
  147.      --mmiippss_n         Determine architecture type. _n can be one of the
  148.                     following values:
  149.  
  150.                     11    Generate code using the instruction set of the
  151.                          R2000/R3000 RISC architecture, and search for
  152.                          mmiippss11 libraries/objects at link time.  This
  153.                          defaults to --oo3322..
  154.  
  155.                     22    Generate code using the MIPS II instruction set
  156.                          (MIPS I + R4000 specific extensions), and search
  157.                          for mmiippss22 libraries/objects at link time.  This
  158.                          defaults to --oo3322..
  159.  
  160.                     33    Generate code using the full MIPS III (e.g. R4000)
  161.                          instruction set, and search for mmiippss33
  162.                          libraries/objects at link time.  This defaults to
  163.                          --nn3322 if --6644 has not been specified.  On R8000-
  164.                          based systems this defaults to --6644.
  165.  
  166.                     44    Generate code using the full MIPS IV instruction
  167.                          set which is supported on R10000, R5000 and R8000
  168.                          systems.  Also search for mmiippss44 libraries/objects
  169.                          at link time.  This is the default on R8000
  170.                          systems.  This defaults to --nn3322 if --6644 is not
  171.                          specified.  On R8000-based systems it defaults to
  172.                          --6644.
  173.  
  174. OOPPTTIIOONN DDEESSCCRRIIPPTTIIOONNSS
  175.      ----             Specify the first option to be discarded.
  176.  
  177.                     In XPG4 mode, standard utilities that do not accept
  178.                     options but do accept operands recognize ---- as the
  179.                     first argument to be discarded.  This is used by
  180.                     portable applications as a way to shield their operands
  181.                     from any arbitrary options that the implementation may
  182.                     provide as an extension.
  183.  
  184.                     For example, if the standard utility ffoooo is listed as
  185.                     taking no options, and the application must give it a
  186.                     pathname with a leading hyphen, it could safely do it
  187.                     as the following:
  188.  
  189.                     ffoooo ---- --mmyyffiillee
  190.  
  191.                     This avoids any problems with --mm used as an extension.
  192.  
  193.      --aalliiggnn_n        Determine object alignment.  Valid for all ABIs.  _n can
  194.                     be one of the following values:
  195.  
  196.                     88    Permits objects larger than 8 bits to be aligned
  197.                          on 8-bit boundaries.  Using this option has the
  198.                          largest impact on performance.
  199.  
  200.                     1166   Permits objects larger than 16 bits to be aligned
  201.                          on 16-bit boundaries. 16-bit objects must still be
  202.                          aligned on 16-bit boundaries as per MC68000-like
  203.                          alignment rules.
  204.  
  205.                     3322   Permits objects larger than 32 bits to be aligned
  206.                          on 32-bit boundaries. 16-bit objects must still be
  207.                          aligned on 16-bit boundaries, and 32-bit objects
  208.                          must still be aligned on 32-bit boundaries.  This
  209.                          is the default for MIPS 1 code.
  210.  
  211.                     6644   Enforces alignment on 64-bit boundaries for 64-bit
  212.                          and larger objects; all smaller objects must still
  213.                          be aligned on the corresponding boundaries.  This
  214.                          is the default for programs compiled with the
  215.                          --mmiippss22 option.
  216.  
  217.                     112288  Enforces alignment on 128-bit boundaries for 128-
  218.                          bit objects; all smaller objects must still be
  219.                          aligned on the corresponding boundaries.  This is
  220.                          the default for programs compiled with the --nn3322 or
  221.                          --6644 options.
  222.  
  223.      --aannssii[[_a_r_g]]     Determine diagnostic messages.
  224.  
  225.                     Using --aannssii without any argument causes the compiler to
  226.                     diagnose any use of extensions which are not defined in
  227.                     the ANSI FORTRAN 77 standard.  Valid for all ABIs. This
  228.                     option is ignored if --oo3322 is used.
  229.  
  230.                     Using --aannssiiEE causes the compiler to issue error
  231.                     messages for the use of extensions which are not
  232.                     defined in the ANSI FORTRAN 77 standard.
  233.  
  234.                     Using --aannssiiWW causes the compiler to issue warning
  235.                     messages for the use of extensions which are not
  236.                     defined in the ANSI FORTRAN 77 standard.
  237.  
  238.                     aannssiiWW is the default.
  239.  
  240.      --aavvooiidd__ggpp__oovveerrffllooww
  241.                     Assert flags which are intended to avoid Global Offset
  242.                     Table (GOT) overflow.
  243.  
  244.      --bbaacckkssllaasshh     Treat the backslash character as a normal character
  245.                     instead of as an escape sequence character.  Valid for
  246.                     all ABIs.  For example, when this is used the sequence
  247.                     "\t" is treated as two separate characters instead of
  248.                     as a single TTAABB character.
  249.  
  250.      --cc             Suppress the loading phase of the compilation and force
  251.                     an object file to be produced even if only one program
  252.                     is compiled.
  253.  
  254.      --cchhaarraarrgg11      Count arguments on the argument stack.  Used with --nn3322
  255.                     or --6644 only.  For subroutines accepting a variable
  256.                     number of arguments, the default is to count all
  257.                     arguments on the argument stack.  Therefore, for each
  258.                     character argument, the count will be 2 because both
  259.                     the address of the character argument and its length
  260.                     are put on the argument stack.  The --cchhaarraarrgg11 option is
  261.                     provided to count each character argument as only one
  262.                     argument.
  263.  
  264.      --cchhuunnkk==_i_n_t_e_g_e_r Cause the same effect as putting a CC$$CCHHUUNNKK==_i_n_t_e_g_e_r
  265.                     directive at the beginning of the file.
  266.  
  267.      --ccoorrdd          Run the procedure rearranger.  See the cccc(1) man page
  268.                     for details.
  269.  
  270.      --ccooll_n          Determine the source statement format.  _n can be one of
  271.                     the following:
  272.  
  273.                     7722   Sets the source statement format to the following:
  274.  
  275.                               CCoolluummnn         CCoonntteennttss
  276.  
  277.                               1-5            Statement label
  278.  
  279.                               6              Continuation indicator
  280.  
  281.                               7-72           Statement body
  282.  
  283.                               73-end         Ignored
  284.  
  285.                     112200  Sets the source statement format to the following:
  286.  
  287.                               CCoolluummnn         CCoonntteennttss
  288.  
  289.                               1-5            Statement label
  290.  
  291.                               6              Continuation indicator
  292.  
  293.                               7-120          Statement body
  294.  
  295.                               121-end        Ignored
  296.  
  297.      --ccpppp           Run the C macro preprocessor on the files before
  298.                     compiling.  This is the default.
  299.  
  300.      --ccrraayylliibbss      Uses the Cray Research I/O library.
  301.  
  302.      --DD_n_a_m_e==[[_d_e_f]] or --DD_n_a_m_e
  303.                     Define the _n_a_m_e to the C macro preprocessor, as if by
  304.                     ##ddeeffiinnee.  If no definition is given, the name is
  305.                     defined as 11.
  306.  
  307.      --DDEEBBUUGG::...     Use the debugging features. This option controls
  308.                     compiler features related to debugging; for example,
  309.                     checking for possible errors (at compile time or
  310.                     execution time), or controlling the treatment of
  311.                     warning messages.  See the DDEEBBUUGG__ggrroouupp(5) man page for
  312.                     more information, including the individual options in
  313.                     this group. Also see the --gg option for controlling
  314.                     information produced for the debugger.
  315.  
  316.      --dd_n            Set double precision variable size.  Valid for all
  317.                     ABIs.  _n can be one of the following values:
  318.  
  319.                     88    Use RREEAALL**88 for any variables declared as DDOOUUBBLLEE
  320.                          PPRREECCIISSIIOONN, and CCOOMMPPLLEEXX**1166 for any variables
  321.                          declared as DDOOUUBBLLEE CCOOMMPPLLEEXX.  This is the default.
  322.  
  323.                     1166   Use RREEAALL**1166 for any variables declared as DDOOUUBBLLEE
  324.                          PPRREECCIISSIIOONN, and CCOOMMPPLLEEXX**3322 for any variables
  325.                          declared as DDOOUUBBLLEE CCOOMMPPLLEEXX.
  326.  
  327.                     1166ccoonnsstt
  328.                          Use RREEAALL**1166 and CCOOMMPPLLEEXX**3322 as the defaults for
  329.                          DDOOUUBBLLEE PPRREECCIISSIIOONN and DDOOUUBBLLEE CCOOMMPPLLEEXX constants,
  330.                          respectively, except when used as actual
  331.                          arguments. Used with --nn3322 or --6644 only.
  332.  
  333.      --dd__lliinneess       Specify that lines with a DD in column 1 are to be
  334.                     compiled and not to be treated as comment lines.  Valid
  335.                     for all ABIs. The default is to treat lines with a DD in
  336.                     column 1 as comment lines.
  337.  
  338.      --dduummpp__iinnppuutt    Generate the Fortran listing file to ssttddeerrrr.  Used with
  339.                     --nn3322 or --6644 only.
  340.  
  341.      --EE             Run only the C macro preprocessor files (without
  342.                     considering suffixes), and send the result to the
  343.                     standard output.  The resultant output will contain
  344.                     line directives.  This overrides the --nnooccpppp option.
  345.  
  346.      --eexxppaanndd__iinncclluuddee
  347.                     Expand all iinncclluuddee statements in the Fortran listing
  348.                     file.  Used with --nn3322 or --6644 only. This option is only
  349.                     applicable when used with the --lliissttiinngg option.
  350.  
  351.      --eexxtteenndd__ssoouurrccee Pad each source line (if necessary) to make it 132
  352.                     bytes long and give a warning if it exceeds 132 bytes.
  353.                     Valid for all ABIs.
  354.  
  355.      --FFLLIISSTT:: ......    Invoke the Fortran listing control group, (which
  356.                     controls production of the compiler's internal program
  357.                     representation back into Fortran code), after IPA
  358.                     inlining and loop-nest transformations.  This is used
  359.                     primarily as a diagnostic tool, and the generated
  360.                     Fortran code may not always compile.  This option may
  361.                     be discontinued in future compiler releases.
  362.  
  363.                     The following are the individual controls in this
  364.                     group:
  365.  
  366.                     ==_f_l_a_g     Enable or disable the listing.  _f_l_a_g can be
  367.                               either OONN or OOFFFF.  This option is implied by
  368.                               any of the others, but may be used to enable
  369.                               the listing when no other options are
  370.                               required, as in this example:
  371.  
  372.                               --FFLLIISSTT::==OONN
  373.  
  374.                     aannssii__ffoorrmmaatt==_f_l_a_g
  375.                               Set the ANSI format.  _f_l_a_g can be either OONN
  376.                               or OOFFFF.  This uses a space (instead of tab)
  377.                               indentation and a maximum of 72 characters
  378.                               per line. The default is OOFFFF.
  379.  
  380.                     eemmiitt__ppffeettcchh==_f_l_a_g
  381.                               Indicate prefetch information as comments in
  382.                               the transformed source.  _f_l_a_g can be either
  383.                               OONN or OOFFFF.
  384.  
  385.                               In the listing, the upper case PPRREEFFEETTCCHH
  386.                               denotes a prefetch and includes the variable
  387.                               reference (with an offset in bytes), an
  388.                               indication of read/write, a stride for each
  389.                               dimension, and a number in the range from 1
  390.                               (low) to 3 (high) reflecting the confidence
  391.                               in the prefetch analysis.  The lower case
  392.                               pprreeffeettcchh comments identify the reference(s)
  393.                               being prefetched by the PPRREEFFEETTCCHH descriptor
  394.                               above.  The comments occur after a read/write
  395.                               to a variable, and give the identifier of the
  396.                               PPRREEFFEETTCCHH-spec for each level of the cache.
  397.                               The default is OOFFFF.
  398.  
  399.                     ffttnn__ffiillee==_f_i_l_e_n_a_m_e
  400.                               Specify the file where the program will be
  401.                               stored.  This defaults to the source file
  402.                               name with extension ..ww22ff..ff.
  403.  
  404.                     lliinneelleennggtthh==_n
  405.                               Set the maximum line length to _n characters.
  406.  
  407.                     sshhooww==_f_l_a_g Print the input and output filenames to
  408.                               ssttddeerrrr.  _f_l_a_g can be either OONN or OOFFFF.  The
  409.                               default is OONN.
  410.  
  411.      --ffbb _f_i_l_e       Specify the feedback file to be used.  Used with --nn3322
  412.                     or --6644 only. This file (with the suffix ..ccffbb) can be
  413.                     produced by pprrooff(1) with its --ffeeeeddbbaacckk option from or
  414.                     more ..CCoouunnttss files generated by the execution of the
  415.                     instrumented program produced by ppiixxiiee(1).
  416.  
  417.      --ffee            Stop compilation immediately after the front-end is
  418.                     run. Used with --nn3322 or --6644 only.
  419.  
  420.      --ffeeeeddbbaacckk      Specify the feedback file to use. See the cccc(1) man
  421.                     page for details.
  422.  
  423.      --GG_n_u_m          Specify the maximum size, in bytes, of a data item that
  424.                     is to be accessed from the global pointer. _n_u_m must a
  425.                     decimal number.
  426.  
  427.                     If _n_u_m is 0, no data is accessed.  The default value
  428.                     for _n_u_m is 8 bytes.  Data stored relative to the global
  429.                     pointer can be accessed by the program quickly, but
  430.                     this space is limited.  Large programs may overflow the
  431.                     space accessed by the global pointer at load time.
  432.  
  433.                     If the loader gives the BBaadd --GG nnuumm vvaalluuee error message,
  434.                     recompile the program with --GG00. Use the same value for
  435.                     this option or for compiling all files that comprise a
  436.                     program executable or DSO.  A preferred alternative is
  437.                     to use the --TTEENNVV sshhoorrtt__lliittss and --TTEENNVV sshhoorrtt__ddaattaa
  438.                     options from the --TTEENNVV:: option group (see the
  439.                     description for --TTEENNVV for details).  The --TTEENNVV options
  440.                     provide better control.  Either of those options
  441.                     override --GG.
  442.  
  443.                     This option is non-standard and may not be supported
  444.                     across product lines.
  445.  
  446.      --gg_l_e_v_e_l        Set debugging level.  _l_e_v_e_l can have one of the
  447.                     following values:
  448.  
  449.                     11    Produce no debugging information for symbolic
  450.                          debugging.  This is the default.
  451.  
  452.                     --gg or 22
  453.                          Produce additional debugging information for full
  454.                          symbolic debugging and not do optimizations that
  455.                          limit full symbolic debugging.  These values
  456.                          override the --OO, --OO11, --OO22, --OO33 optimization
  457.                          options.
  458.  
  459.                     33    Produce additional debugging information for
  460.                          symbolic debugging of fully optimized code.  This
  461.                          option makes the debugger inaccurate.  This option
  462.                          can be used with the --OO, --OO11, --OO22, --OO33
  463.                          optimization options.
  464.  
  465.      --hheellpp          List all available options; this does not invoke the
  466.                     compiler. Used with --nn3322 or --6644 only.
  467.  
  468.      --II[[_d_i_r]]        Determine searching options for iinncclluuddee files.  Using
  469.                     --II without an argument disables searching for ##iinncclluuddee
  470.                     files in the standard directory ( //uussrr//iinncclluuddee ). This
  471.                     option will be phased out in a future release;
  472.                     --nnoossttddiinncc should be used in its place.
  473.  
  474.                     Using --II _d_i_r allows you to specify a directory for
  475.                     searching.
  476.  
  477.                     ##iinncclluuddee files whose names do not begin with // are
  478.                     always sought first in the directory of the _f_i_l_e
  479.                     argument, then in directories specified in --II options,
  480.                     and finally in the standard directory (//uussrr//iinncclluuddee).
  481.  
  482.      --ii_n            Set size for integer values.  Valid for all ABIs.  _n
  483.                     can be one of the following values:
  484.  
  485.                     22    Make the default integer constants and variables
  486.                          short (2 bytes).  All logical quantities will also
  487.                          be short.
  488.  
  489.                     44    Make the default integer constants and variables
  490.                          long (4 bytes).  All logical quantities will also
  491.                          be long.  This is the default.
  492.  
  493.                     88    Make the default integer constants and variables
  494.                          64 bits (8 bytes).  All logical quantities will
  495.                          also be 64 bits.
  496.  
  497.      --iiggnnoorree__ssuuffffiixx Set compiler invocation.  Used with --nn3322 or --6644 only.
  498.                     By default the compiler uses file suffixes to determine
  499.                     the programming compile language.  For example, ff7777
  500.                     ffiillee..cc invokes the C compiler.  By using the
  501.                     --iiggnnoorree__ssuuffffiixx option, the language is determined
  502.                     solely by how the compiler is invoked. Therefore, in
  503.                     the above example, ff7777 ffiillee..cc invokes the F77 compiler.
  504.  
  505.      --IINNLLIINNEE:: ......   Invoke the standalone inliner option group, which
  506.                     controls application of intra-file subprogram inlining
  507.                     when interprocedural analysis is not enabled.  See the
  508.                     description of --IIPPAA for details.  See the iippaa((55)) man
  509.                     page for more information, including the individual
  510.                     options in this group.
  511.  
  512.      --IIPPAA:: ...      Invoke the Inter-Procedural Analyzer option group which
  513.                     controls  application of inter-procedural analysis and
  514.                     optimization, including inlining, common block array
  515.                     padding, constant propagation, dead function
  516.                     elimination, alias analysis and others.  Use --IIPPAA by
  517.                     itself to invoke the interprocedural analysis phase
  518.                     with default options.  If you compile the program and
  519.                     link it in distinct steps, you must use at least --IIPPAA
  520.                     for the compile step, and specify --IIPPAA and the
  521.                     individual options in the group for the link step. See
  522.                     the iippaa((55)) man page for more information, including the
  523.                     individual options in this group.
  524.  
  525.      --kkeeeepp          Build intermediate compilation files named after the
  526.                     corresponding source files, with the suffix replaced by
  527.                     one that is appropriate for the type of intermediate
  528.                     file (e.g. the front end generates a binary
  529.                     intermediate ..BB file).  These intermediate files are
  530.                     never removed even when a compilation pass encounters a
  531.                     fatal error.
  532.  
  533.                     This option is non-standard and may not be supported
  534.                     across product lines.
  535.  
  536.      --kkeeeeppddoollllaarr    Treat $$ as a normal last character. Used with --nn3322 or
  537.                     --6644 only.
  538.  
  539.      --KKPPIICC          Generate position-independent code (PIC).  This is the
  540.                     default and is needed for programs linking with dynamic
  541.                     shared libraries.  Specify --nnoonn__sshhaarreedd on the command
  542.                     line to disable the generation of PIC code.
  543.  
  544.      --LL _d_i_r_e_c_t_o_r_y   Change the algorithm of searching for libraries in XPG4
  545.                     mode. _d_i_r_e_c_t_o_r_y is the path to a directory that should
  546.                     be searched before using the default system libraries.
  547.                     Directories named are searched in the specified order.
  548.                     You can specify multiple --LL options on the command
  549.                     line.
  550.  
  551.      --ll _l_i_b_r_a_r_y     Search the library named lliibb..IIRR_l_i_b_r_a_r_y..aa (XPG4 mode).
  552.                     A library is searched when its name is encountered, so
  553.                     the placement of this option is significant.
  554.  
  555.      --LLAANNGG:: rreeccuurrssiivvee==_f_l_a_g
  556.                     Invoke the language option control group to control
  557.                     recursion support.  _f_l_a_g can be either OONN or OOFFFF.  In
  558.                     either mode, the compiler supports a recursive, stack-
  559.                     based calling sequence.   The difference lies in the
  560.                     optimization of statically allocated local variables.
  561.                     With --LLAANNGG::rreeccuurrssiivvee==OONN, a statically allocated local
  562.                     variable could be referenced or modified by a recursive
  563.                     procedure call, and therefore must be stored into
  564.                     memory before making a call and reloaded afterwards.
  565.  
  566.                     With --LLAANNGG::rreeccuurrssiivvee==OOFFFF, the compiler can safely
  567.                     assume a statically allocated local variable will not
  568.                     be referenced or modified by a procedure call and will
  569.                     be able to optimize more aggressively.
  570.  
  571.                     The default is --LLAANNGG::rreeccuurrssiivvee==OOFFFF.
  572.  
  573.      --LLIISSTT:: ......     Invoke the listing option flag, which controls
  574.                     information that is written to a listing (..ll) file and
  575.                     to the assembly listing file if the ff7777 --SS option is
  576.                     used.
  577.  
  578.                     The following are the individual controls in this
  579.                     group:
  580.  
  581.                     ==_f_l_a_g     Enable or disable writing the listing file.
  582.                               _f_l_a_g can be either OONN or OOFFFF.  The default is
  583.                               --LLIISSTT==OONN if any --LLIISSTT:: group options are
  584.                               enabled.  By default, the listing file
  585.                               contains a list of options enabled.
  586.  
  587.                     aallll__ooppttiioonnss==_f_l_a_g
  588.                               Enable or disable listing of most supported
  589.                               options.  _f_l_a_g can be either OONN or OOFFFF.  The
  590.                               default is --LLIISSTT::aallll__ooppttiioonnss==OOFFFF.
  591.  
  592.                     nnootteess==_f_l_a_g
  593.                               Enable or disable comment notes.  If an
  594.                               assembly listing is generated (for example,
  595.                               when using ff7777 --SS) parts of the compiler such
  596.                               as software pipelining can place notes into
  597.                               the program as comments describing what has
  598.                               been done.  Setting this option to
  599.                               --LLIISSTT::nnootteess==OOFFFF suppresses the notes.  The
  600.                               default is --LLIISSTT::nnootteess==OONN.
  601.  
  602.                     ooppttiioonnss==_f_l_a_g
  603.                               Enable or disable listing of the options
  604.                               modified (directly in the command line, or
  605.                               indirectly as a side effect of other
  606.                               options).  _f_l_a_g can be either OONN or OOFFFF.  The
  607.                               default is --LLIISSTT::ooppttiioonnss==OOFFFF.
  608.  
  609.                     ssyymmbboollss==_f_l_a_g
  610.                               Enable or disable listing of information
  611.                               about the symbols (variables) managed by the
  612.                               compiler. _f_l_a_g can be either OONN or OOFFFF.
  613.  
  614.      --lliissttiinngg       Produce the listing file which has the source listing
  615.                     (with line type code), compilation flags, and error
  616.                     codes.  The listing file has a ..LL extension.
  617.  
  618.      --LLNNOO           Invoke the loop nest optimizer.  See the LLNNOO(5) man
  619.                     page for details about the options available with --LLNNOO.
  620.  
  621.      --MM             Run only the macro preprocessor on the named C
  622.                     programs, requesting it to generate mmaakkee dependencies
  623.                     and send the result to the standard output.  Used with
  624.                     --nn3322 or --6644 only.
  625.  
  626.      --MMDDuuppddaattee _f_i_l_e_n_a_m_e
  627.                     While compiling, update _f_i_l_e_n_a_m_e to contain header,
  628.                     library, and runtime mmaakkee(1) dependencies for the ff7777
  629.                     output file.  ff7777 --MMDDuuppddaattee updates only lines that end
  630.                     with a distinctive mmaakkee comment and begin with the name
  631.                     of the output file followed by a colon.  Used with --nn3322
  632.                     or --6644 only.
  633.  
  634.      --MMPP:: ......       Enable or disable multiprocessing features under --nn3322
  635.                     and --6644.  All of the features are enabled by default
  636.                     under --mmpp.. The following are the individual controls in
  637.                     this group:
  638.  
  639.                     ddssmm==_f_l_a_g  Enable or disable data distribution.  _f_l_a_g
  640.                               can be either OONN or OOFFFF.  The default is
  641.                               --MMPP::ddssmm==OONN.
  642.  
  643.                     cclloonnee==_f_l_a_g
  644.                               Enable or disable auto-cloning.  _f_l_a_g can be
  645.                               either OONN or OOFFFF.  The compiler automatically
  646.                               clones procedures that are called with
  647.                               reshaped arrays as parameters for the
  648.                               incoming distribution. However, if you have
  649.                               explicitly specified the distribution on all
  650.                               relevant formal parameters, you can disable
  651.                               auto-cloning with --MMPP::cclloonnee==OOFFFF.. The
  652.                               consistency checking of the distribution
  653.                               between actual and formal parameters is not
  654.                               affected by this flag, and is always enabled.
  655.  
  656.                     cchheecckk__rreesshhaappee==_f_l_a_g
  657.                               Enable or disable generation of the runtime
  658.                               consistency checks across procedure
  659.                               boundaries when passing reshaped arrays (or
  660.                               portions thereof) as parameters.  _f_l_a_g can be
  661.                               either OONN or OOFFFF.  The default is
  662.                               --MMPP::cchheecckk__rreesshhaappee==OOFFFF.
  663.  
  664.                     ooppeenn__mmpp==_f_l_a_g
  665.                               Enable or disable compiler to use OpenMP
  666.                               directives.  _f_l_a_g can be either OONN or OOFFFF.
  667.                               The default is --MMPP::ooppeenn__mmpp==OONN.
  668.  
  669.                     oolldd__mmpp==_f_l_a_g
  670.                               Enable or disable recognition of the Silicon
  671.                               Graphics multiprocessing directives and the
  672.                               PCF directives.  These directives are
  673.                               outmoded; their preferred alternatives are
  674.                               the OpenMP directives, which are described in
  675.                               the _M_I_P_S_p_r_o _F_o_r_t_r_a_n _7_7 _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e.
  676.                               _f_l_a_g can be either OONN or OOFFFF.
  677.  
  678.                     When debugging a multiprocessed program with ddbbxx, issue
  679.                     the following command:
  680.  
  681.                          ignore TERM
  682.  
  683.                     When debugging a multiprocessed program with ccvvdd,
  684.                     select the VViieewwss//SSiiggnnaall panel, and select ddiissaabbllee
  685.                     SSIIGGTTEERRMM.
  686.  
  687.                     Debugging is possible without these commands, but the
  688.                     program may not terminate gracefully after execution.
  689.  
  690.      --mmpp            Enable the multiprocessing and distributed shared
  691.                     memory (DSM) (--nn3322, --6644) directives.
  692.  
  693.      --mmpp__kkeeeepp       Keep the compiler generated temporary file and generate
  694.                     correct line numbers for debugging multiprocessed DDOO
  695.                     loops.  Valid for all ABIs.  This option should be used
  696.                     with either the --mmpp or the --ppffaa options.  The saved
  697.                     file name has the following form:
  698.  
  699.                     $$TTMMPPDDIIRR//PP<<_u_s_e_r__s_u_b_r_o_u_t_i_n_e__n_a_m_e>><<_m_a_c_h_i_n_e__n_a_m_e>><<_p_i_d>>
  700.  
  701.                     If the TTMMPPDDIIRR environment variable is not set, the file
  702.                     is stored in //ttmmpp.
  703.  
  704.      --mmppiioo          Allow Fortran I/O to be executed from multiple threads.
  705.                     Valid for all ABIs.  See FFTTNN__MMPPIIOO(5) for details.
  706.  
  707.      --mmpp__sscchheeddttyyppee== _t_y_p_e
  708.                     Causes the same effect as putting a CC$$MMPP__SSCCHHEEDDTTYYPPEE==_t_y_p_e
  709.                     directive at the beginning of the file.  The following
  710.                     are the supported values for _t_y_p_e:
  711.  
  712.                          ssiimmppllee         iinntteerrlleeaavvee
  713.  
  714.                          ddyynnaammiicc        ggssss
  715.  
  716.                          rruunnttiimmee
  717.  
  718.      --NNCC_n_n_n         Set the maximum number of continuation lines. The
  719.                     default is 99.  Used with --nn3322 or --6644 only.
  720.  
  721.      --nnooaappppeenndd      Do not append an underbar to externally-visible names
  722.                     (appending an unbar is the default behavior).  Used
  723.                     with --nn3322 or --6644 only.
  724.  
  725.      --nnooccpppp         Do not run the C macro preprocessor on C and assembly
  726.                     source files before compiling.
  727.  
  728.      --nnooeexxppoopptt      Do not optimize exponential operation. Used with --nn3322
  729.                     or --6644 only.  This option is used to obtain the same
  730.                     precision as releases prior to 4D1-4.0 without using
  731.                     the exponentiation optimization.  The new optimization
  732.                     might give some precision differences in double
  733.                     precision exponential operations.
  734.  
  735.      --nnooeexxtteenndd__ssoouurrccee
  736.                     Restrict the range of source text from column 1 through
  737.                     column 72.  Valid for all ABIs.
  738.  
  739.      --nnooff7777         Cause some statements to behave like Fortran 66. Used
  740.                     with --nn3322 or --6644 only.
  741.  
  742.      --nnooii44          Make integers and logicals 2 bytes. Used with --nn3322 or
  743.                     --6644 only.
  744.  
  745.      --nnoonn__sshhaarreedd    Specify that the compiler should build a non-shared
  746.                     object.  This is the opposite of --KKPPIICC.  This option
  747.                     causes the linker to search the nnoonnsshhaarreedd subdirectory
  748.                     of each default library search directory.  See lldd(1)
  749.                     for more information.  The linker changes the default
  750.                     archive extensions to ..aa instead of ..ssoo.  The
  751.                     appropriate non-shared library images must be
  752.                     installed.
  753.  
  754.                     Programs built with the --nnoonn__sshhaarreedd option are not
  755.                     portable across platforms.
  756.  
  757.      --nnoossttddiinncc      Disable searching for ##iinncclluuddee files in the standard
  758.                     directory (//uussrr//iinncclluuddee).
  759.  
  760.      --oonneettrriipp or --11 Compile DDOO loops that execute at least once if reached.
  761.                     (FORTRAN 77 DDOO loops are not executed if the upper
  762.                     limit is smaller than the lower limit.)  Valid for all
  763.                     ABIs.  B
  764.  
  765.      --oo _o_u_t_p_u_t      Name the final output file _o_u_t_p_u_t.  If this option is
  766.                     used, the file aa..oouutt is undisturbed.
  767.  
  768.      --OO_l_e_v_e_l        Specify the basic level of optimization desired.  _l_e_v_e_l
  769.                     can be one of the following values:
  770.  
  771.                     _l_e_v_e_l
  772.                          Action
  773.  
  774.                     00    Turn off all optimizations. This is the default
  775.                          for --nn3322 and --6644 compilations.
  776.  
  777.                     11    Turn on local optimizations that can be done
  778.                          quickly.  This is the default for --oo3322
  779.                          compilations.
  780.  
  781.                     --OO or --OO22
  782.                          Turn on extensive optimization.  The optimizations
  783.                          at this level are generally conservative; they are
  784.                          usually beneficial, provide improvements
  785.                          commensurate to the compile time spent to achieve
  786.                          them, and avoid changes which affect such things
  787.                          as floating-point accuracy. Under --oo3322 in XPG4
  788.                          mode, --OO is not accepted, and the optimization
  789.                          level should follow the --OO flag.
  790.  
  791.                     33    Turn on aggressive optimization.  The
  792.                          optimizations at this level are distinguished from
  793.                          22 by their aggressiveness, generally seeking
  794.                          highest-quality generated code even if it requires
  795.                          extensive compile time.  They may include
  796.                          optimizations which are generally beneficial but
  797.                          occasionally hurt performance. Under --nn3322 or --6644
  798.                          this level also enables the --OOPPTT::rroouunnddooffff==22 option
  799.                          which does aggressive rearrangement of floating-
  800.                          point calculations with potential effects on
  801.                          accuracy.
  802.  
  803.                          See the OOPPTT(5) man page for details about the use
  804.                          of the --OOPPTT option.
  805.  
  806.                     ffaasstt[[==_i_p_x_x]]
  807.                          Maximizes performance for the target platform
  808.                          specified by _i_p_x_x.  Used with --nn3322 or --6644 only.
  809.                          The optimizations may differ between releases of
  810.                          the compiler, and among the supported platforms.
  811.                          The optimizations will always enable the full
  812.                          instruction set of the target platform (for
  813.                          example, --mmiippss44 for an R10000).  The optimizations
  814.                          may affect floating point accuracy due to
  815.                          rearrangement of computations.
  816.  
  817.                          Typical optimizations selected include the
  818.                          following:
  819.  
  820.                           -O3
  821.                           -IPA
  822.                           -TARG:platform=_i_p_x_x
  823.                           --nn3322
  824.                           --OOPPTT::OOlliimmiitt==00::rroouunnddooffff==33::ddiivv__sspplliitt==OONN::aalliiaass==ttyyppeedd
  825.  
  826.                     See the description of --TTAARRGG::ppllaattffoorrmm==_i_p_x_x for valid
  827.                     values for _i_p_x_x.  To determine precisely what options
  828.                     are set by --OOffaasstt, use the --LLIISSTT::ooppttiioonnss command.  The
  829.                     default is an R10000 Power Challenge, iipp2255.
  830.  
  831.      --OOPPTT           Invoke the optimization control group.  See the OOPPTT(5)
  832.                     man page for details about this optimization group.
  833.  
  834.      --PP             Run only the C macro preprocessor and put the result
  835.                     for each source file (e.g., ..ff, ..FF and ..ss) in a
  836.                     corresponding ..ii file.  The ..ii file has no ## lines in
  837.                     it.
  838.  
  839.      --ppffaa[[_a_r_g]]      Run the automatic parallelization pass of the back-end
  840.                     (--nn3322 or --6644 only) or the ppffaa preprocessor to
  841.                     automatically discover parallelism in the source code.
  842.                     This also enables the multiprocessing directives.
  843.  
  844.                     _a_r_g can be either lliisstt or kkeeeepp.
  845.  
  846.                     --ppffaa lliisstt runs the automatic parallelization option of
  847.                     the back-end when used with --nn3322, --6644, or ppffaa --oo3322.
  848.                     This also produces a listing file with a ..aannll suffix
  849.                     (when used with --nn3322, --6644) or a file with a ..ll suffix
  850.                     (when used with --oo3322) explaining which loops were
  851.                     parallelized, and if not, why not.
  852.  
  853.                     --ppffaa kkeeeepp runs the automatic parallelization option of
  854.                     the back-end when used with --nn3322 or --6644 or ppffaa with
  855.                     --oo3322 and produces the listing file, and also keeps the
  856.                     transformed multiprocessed Fortran intermediate file in
  857.                     a file with suffix ..mm.
  858.  
  859.      --ppffaapprreeppaassss    Permit source code to be passed through ppffaa multiple
  860.                     times.  ppffaa is run using the options found on the
  861.                     --ppffaapprreeppaassss option, except that no parallel compiler
  862.                     directives are generated.  The output from this pre-
  863.                     pass is then fed back into ppffaa , using the normal
  864.                     options.  This is useful on some programs.  For most
  865.                     programs, multiple passes have no effect.  This option
  866.                     should only be used when it is determined that it will
  867.                     be useful.  Options to ppffaa appear on the --ppffaapprreeppaassss
  868.                     option exactly as in the --WWKK option.  Multiple
  869.                     --ppffaapprreeppaassss options may be used; they are executed in
  870.                     left to right order.  This option requires Power
  871.                     Fortran 77.
  872.  
  873.      --rr_n            Set value for real numbers. Valid for all ABIs.  _n can
  874.                     be one of the following values:
  875.  
  876.                     44    Use RREEAALL**44 and CCOOMMPPLLEEXX**88 as the defaults for real
  877.                          and complex variables when they are not explicitly
  878.                          declared with a length.  This is the default.
  879.  
  880.                     88    Use RREEAALL**88 and CCOOMMPPLLEEXX**1166 as the defaults for real
  881.                          and complex variables when they are not explicitly
  882.                          declared with a length.  This option is often
  883.                          needed when the porting of programs from 64-bit
  884.                          machines may result in convergence problems (and
  885.                          very long execution time) if the floating-point
  886.                          accuracy is inadequate.
  887.  
  888.                     88ccoonnsstt
  889.                          Use RREEAALL**88 and CCOOMMPPLLEEXX**1166 as the defaults for real
  890.                          and complex constants, respectively, except when
  891.                          used as actual arguments. Used with --nn3322 or --6644
  892.                          only.
  893.  
  894.      rr55000000          Schedule code for the R5000 and add
  895.                     --LL//uussrr//lliibb{{3322,,6644}}//mmiippss{{33,,44}}//rr55000000 to the head of the
  896.                     library search path depending on which ABI and ISA is
  897.                     specified or implied.
  898.  
  899.      rr88000000          Schedule code for the R8000 and add
  900.                     --LL//uussrr//lliibb{{3322,,6644}}//mmiippss{{33,,44}}//rr88000000 to the head of the
  901.                     library search path depending on which ABI and ISA is
  902.                     specified or implied.
  903.  
  904.      rr1100000000         Schedule code for the R10000 and add
  905.                     --LL//uussrr//lliibb{{3322,,6644}}//mmiippss{{33,,44}}//rr1100000000 to the head of the
  906.                     library search path depending on which ABI and ISA is
  907.                     specified or implied.
  908.  
  909.      --SS             Compile the specified source programs and leave the
  910.                     symbolic assembly language output in corresponding
  911.                     files suffixed with ..ss.
  912.  
  913.      --sshhooww          Print the passes as they execute with their arguments
  914.                     and their input and output files.
  915.  
  916.      --sshhooww__ddeeffaauullttss List all defaults used in the compiler environment.
  917.                     This option does not compile the program.
  918.  
  919.      --ssttaattiicc        Cause all local variables to be statically allocated.
  920.                     Valid for all ABIs.  Statically allocated local
  921.                     variables are initialized to zero and exist for the
  922.                     life of the program.  This option is usually needed for
  923.                     programs ported from older systems (for example, VMS)
  924.                     where all variables are statically allocated.
  925.  
  926.      --TTAARRGG:: ......     Invoke the target option group, which controls the
  927.                     target architecture and machine for which code is
  928.                     generated.  The following are the individual controls
  929.                     in this group:
  930.  
  931.                     ppllaattffoorrmm[[==_i_p_x_x]]
  932.                               Identify the target SGI platform for
  933.                               compilation, choosing the appropriate
  934.                               internal parameters (such as cache sizes).
  935.                               The following are the currently supported
  936.                               values:
  937.  
  938.                                    iipp1199           iipp2200
  939.  
  940.                                    iipp2211           iipp2222__44kk
  941.  
  942.                                    iipp2222__55kk        iipp2244
  943.  
  944.                                    iipp2255           iipp2266
  945.  
  946.                                    iipp2277           iipp2288
  947.  
  948.                                    iipp3300           iipp3322__55kk
  949.  
  950.                                    iipp3322__1100kk
  951.  
  952.                               Determine the appropriate selection for your
  953.                               platform by using the following command:
  954.  
  955.                                         hinv -c processor
  956.  
  957.                               The first line of the output identifies the
  958.                               proper IP number, and for those cases where a
  959.                               processor suffix (for example, ''__44kk'')) is
  960.                               required, the next line identifies the
  961.                               processor (e.g. R4000).
  962.  
  963.                     ffpp__pprreecciissee==_f_l_a_g
  964.                               Force the target processor into precise
  965.                               floating-point mode at execution time.  _f_l_a_g
  966.                               can be either OONN or OOFFFF.  If you use this
  967.                               option to compile any of the component source
  968.                               files of a program, this feature is invoked
  969.                               in the resulting program.  This option is
  970.                               only meaningful for R8000 target processors,
  971.                               and can cause significant performance
  972.                               degradation for programs with heavy
  973.                               floating-point usage.  See the ffppmmooddee(1)
  974.                               command for more information.
  975.  
  976.                     mmaadddd==_f_l_a_g Enable or disable transformations to use
  977.                               multiply/add instructions.  _f_l_a_g can be
  978.                               either OONN or OOFFFF.  These instructions perform
  979.                               a multiply and an add with a single round-
  980.                               off.  They are, therefore, more accurate than
  981.                               the usual discrete operations, and may cause
  982.                               results to not match baselines from other
  983.                               targets.  Use this option to determine
  984.                               whether observed differences are due to
  985.                               mmaaddddss. The default is --TTAARRGG::mmaadddd==OONN for a
  986.                               MIPS IV target; it is ignored for others.
  987.  
  988.                     pprroocceessssoorr==_t_y_p_e
  989.                               Select the processor for which to schedule
  990.                               code.  _t_y_p_e can be either rr44000000, rr55000000,
  991.                               rr88000000, or rr1100000000.  The chosen processor must
  992.                               support the ISA specified (or implied by the
  993.                               ABI).
  994.  
  995.                     rr44kkrreevv2222==_f_l_a_g
  996.                               Generate code to work around bugs in the
  997.                               R4000 rev 2.2 chip.  _f_l_a_g can be either OONN or
  998.                               OOFFFF.  This currently means simulating 64-bit
  999.                               variable shifts in the software.
  1000.  
  1001.      --TTEENNVV:: ......     Invoke the target environment option group, which
  1002.                     controls the target environment assumed and/or produced
  1003.                     by the compiler.  The following are the individual
  1004.                     controls in this group:
  1005.  
  1006.                     aalliiggnn__aaggggrreeggaattee==_b_y_t_e_s
  1007.                               Control alignment of allocated aggregates,
  1008.                               i.e. arrays and records.  The value for _b_y_t_e_s
  1009.                               specifies that any aggregate object at least
  1010.                               that large is to be given at least that
  1011.                               alignment.  By default (or if no value is
  1012.                               provided), aggregates are aligned to the
  1013.                               integer register size (for example, 8 bytes
  1014.                               for 64-bit programs and 4 bytes for 32-bit
  1015.                               programs).  The value 0 specifies that the
  1016.                               minimum alignment consistent with the ABI is
  1017.                               to be used.  Otherwise, the value given must
  1018.                               be a power of two no greater than 16.
  1019.  
  1020.                     cchheecckk__ddiivv==_N
  1021.                               See the DDEEBBUUGG__ggrroouupp(5) man page for more
  1022.                               information.
  1023.  
  1024.                     llaarrggee__GGOOTT==_f_l_a_g
  1025.                               Assume that the Global Offset Table (for
  1026.                               shared code) is more than 64K bytes, that is,
  1027.                               generate large offsets for references to it.
  1028.                               _f_l_a_g can be either OONN or OOFFFF.  The default is
  1029.                               --TTEENNVV::llaarrggee__GGOOTT==OOFFFF.
  1030.  
  1031.                     ssmmaallll__GGOOTT==_f_l_a_g
  1032.                               Assume that the Global Offset Table (for
  1033.                               shared code) is less than 64K bytes, i.e.
  1034.                               assume small offsets for references to it.
  1035.                               _f_l_a_g can be either OONN or OOFFFF.
  1036.  
  1037.                     XX==_l_e_v_e_l   Specify the level of enabled exceptions that
  1038.                               will be assumed for purposes of performing
  1039.                               speculative code motion.  _l_e_v_e_l can be a
  1040.                               number between 1 and 4.  The default level is
  1041.                               1 when the --OO00, --OO22 options are used; the
  1042.                               default is 2 when the --OO33 option is used.
  1043.  
  1044.                               In general, an instruction is not speculated
  1045.                               (that is, moved above a branch by the
  1046.                               optimizer) unless any exceptions it might
  1047.                               cause are disabled by this option.
  1048.  
  1049.                                    * At level 0, no speculative code motion
  1050.                                      may be performed.
  1051.  
  1052.                                    * At level 1, safe speculative code
  1053.                                      motion may be performed, with IEEE-754
  1054.                                      underflow and inexact exceptions
  1055.                                      disabled.
  1056.  
  1057.                                    * At level 2, all IEEE-754 exceptions
  1058.                                      are disabled except divide by zero.
  1059.  
  1060.                                    * At level 3, all IEEE-754 exceptions
  1061.                                      are disabled including divide by zero.
  1062.  
  1063.                                    * At level 4, memory exceptions may be
  1064.                                      disabled or ignored.
  1065.  
  1066.                               NOTE: At levels above the default level 1,
  1067.                               various hardware exceptions which are
  1068.                               normally useful for debugging, or which are
  1069.                               trapped and repaired by the hardware, may be
  1070.                               disabled or ignored, with the potential of
  1071.                               hiding obscure bugs.  The program should not
  1072.                               explicitly manipulate the IEEE floating-point
  1073.                               trap-enable flags in the hardware if this
  1074.                               option is used.
  1075.  
  1076.      --UU _n_a_m_e        Remove any initial definition of _n_a_m_e.
  1077.  
  1078.      --uussee__rreeaaddwwrriittee__ccoonnsstt or --uussee__rreeaaddoonnllyy__ccoonnsstt
  1079.                     Control the use of constants put in writable sections.
  1080.                     Used with --nn3322 or --6644 only.  By default, they are
  1081.                     writable and thus changeable.  However, if you want
  1082.                     constants to be not writable, then in addition to
  1083.                     --uussee__rreeaaddoonnllyy__ccoonnsstt you must also specify --GG00
  1084.                     --rrddaattaa__sshhaarreedd because by default the linker will make
  1085.                     ..rrooddaattaa and gp-relative sections be on writable pages.
  1086.  
  1087.      --vveerrssiioonn       Display the version number of the compiler. NNoottee:  The
  1088.                     compiler will not be run if this flag is used.
  1089.  
  1090.      --wwooffff _n_u_m_b_e_r   Specify number list for warnings.
  1091.  
  1092.                     In SGI Fortran, warnings can be suppressed.  All
  1093.                     warnings have been given a number, which appears in
  1094.                     parentheses immediately after the word ``warning'' in
  1095.                     the warning text.  Fortran-specific message have
  1096.                     numbers greater than 2000 (to make warning numbers
  1097.                     distinct from those of other front ends), while cpp-
  1098.                     related warnings have the same warning number as in the
  1099.                     C front ends.  The _n_u_m_b_e_r is a comma-separated set of 1
  1100.                     or more _n_u_m_b_e_r_s_e_t_s. A _n_u_m_b_e_r_s_e_t is either a simple
  1101.                     integer or a pair of integers separated by a hyphen.
  1102.                     Examples:
  1103.  
  1104.                     --wwooffff CC22002266
  1105.  
  1106.                     This suppresses warning 2026.
  1107.  
  1108.                     --wwooffff 22002266--22335522
  1109.  
  1110.                     This suppresses warnings 2026 through 2352.
  1111.  
  1112.                     --wwooffff 22002266--22335522,,22440000--22550000
  1113.  
  1114.                     This suppresses numbers 2026 through 2352 and 2400
  1115.                     through 2500.
  1116.  
  1117.      --xxggoott          Compile the program using a 32-bit offset in the Global
  1118.                     Symbol Table (GOT).  By default, addresses are loaded
  1119.                     out of the GOT using a 16-bit offset from a context
  1120.                     pointer. The default size of the GOT thus is limited to
  1121.                     64K bytes, or approximately 8K worth of symbols (16K
  1122.                     for --oo3322 compiled objects).  This can sometimes result
  1123.                     in a GGOOTT oovveerrffllooww message.  The --xxggoott option allows the
  1124.                     GOT to contain up to 1G of entries; however, the
  1125.                     resulting executable can be larger and slower and all
  1126.                     objects must be compiled with the --xxggoott option. --xxggoott
  1127.                     is a synonym for --TTEENNVV::llaarrggee__GGOOTT. See the description
  1128.                     of --TTEENNVV for more details.
  1129.  
  1130.                     A better solution for GOT overflow problems is to
  1131.                     compile the objects without the --xxggoott option and to
  1132.                     link using the --mmuullttiiggoott option, described in lldd(1).
  1133.  
  1134.                     For more information about the GOT, the --xxggoott option
  1135.                     and some important notes about its use, see the ddssoo(5)
  1136.                     man page.
  1137.  
  1138.      _f_i_l_e._s_u_f_f_i_x    File or files to be processed.  See the DESCRIPTION
  1139.                     section of this man page for a discussion of the types
  1140.                     of files that can be processed.
  1141.  
  1142.    OOppttiioonnss ffoorr DDeevveellooppmmeenntt
  1143.      The following options aid compiler development and are not generally
  1144.      used:
  1145.  
  1146.      --WW _c,,_a_r_g[[,,_a_r_g......]]
  1147.                     Pass the argument[s] specified by _a_r_g to the compiler
  1148.                     pass _c.  _c is one of the following values, which
  1149.                     correspond to the following compiler passes:
  1150.  
  1151.                     Compiler pass  Value
  1152.  
  1153.                     ccpppp            pp
  1154.  
  1155.                     ppffaa            KK (Power Fortran 77 only)
  1156.  
  1157.                     mmffeeff7777         ff
  1158.  
  1159.                     bbee             bb
  1160.  
  1161.                     aassmm            aa
  1162.  
  1163.                     lldd             ll
  1164.  
  1165.                     Sets of these phase names can be used to select any
  1166.                     combination of phases.  In the following example, the
  1167.                     option --oo ffoooo is passed to the bb and aa phases:
  1168.  
  1169.                          -Wba,-o,foo
  1170.  
  1171.      --YY _c,,_p_a_t_h      Sets the _p_a_t_h in which to find the associated phase,
  1172.                     using the same phase names as given in the --WW option.
  1173.                     Also, the letter II can be used to specify where to
  1174.                     search for include files; the letter SS can be used to
  1175.                     specify where to search for startup files (ccrrtt**..oo); and
  1176.                     the letter LL can be used to specify where to search for
  1177.                     libraries.
  1178.  
  1179. DDeeffaauullttss SSppeecciiffiiccaattiioonn FFiilleess
  1180.      The compiler provides a method by which you can customize the
  1181.      Application Binary Interface (ABI), Instruction Set Architecture (ISA)
  1182.      and processor type used in compilations where they are not explicitly
  1183.      specified.  Under this method, the CCOOMMPPIILLEERR__DDEEFFAAUULLTTSS__PPAATTHH environment
  1184.      variable can be set to a colon-separated list of paths where the
  1185.      compiler will look for a ccoommppiilleerr..ddeeffaauullttss file. If no
  1186.      ccoommppiilleerr..ddeeffaauullttss file is found or if the environment variable is not
  1187.      set, the compiler looks for //eettcc//ccoommppiilleerr..ddeeffaauullttss file.  If that file
  1188.      is not found, the compiler uses the built-in defaults.
  1189.  
  1190.      The ccoommppiilleerr..ddeeffaauullttss file contains a --DDEEFFAAUULLTT:: option group specifier
  1191.      that can be used to specify the default ABI, ISA, processor, and
  1192.      optimization level.  A warning  is issued if anything other than a
  1193.      --DDEEFFAAUULLTT:: option is given in the ccoommppiilleerr..ddeeffaauullttss file.
  1194.  
  1195.      The format of the --DDEEFFAAUULLTT:: option group specifier is as follows:
  1196.  
  1197.      --DDEEFFAAUULLTT::[[aabbii==_a_b_i_t_y_p_e]][[::iissaa==_i_s_a_t_y_p_e]] [[::pprroocc==_r_t_y_p_e]]
  1198.      [[::oopptt==_l_e_v_e_l]][[::aarriitthh==_n_u_m_b_e_r]]
  1199.  
  1200.      The following values are valid for the arguments:
  1201.  
  1202.      _a_b_i_t_y_p_e ABI selections:
  1203.  
  1204.           oo3322       32-bit
  1205.  
  1206.           nn3322       high performance, n32
  1207.  
  1208.           6644        64-bit
  1209.  
  1210.      _i_s_a_t_y_p_e ISA selections:
  1211.  
  1212.           mmiippss11     R3000 and above
  1213.  
  1214.           mmiippss22     R4000 and above
  1215.  
  1216.           mmiippss33     R4000 and above
  1217.  
  1218.           mmiippss44     R5000, R8000 and R10000
  1219.  
  1220.      _r_t_y_p_e pprroocc selections indicate which processor schedules instructions
  1221.      by default and which paths will be added to the head of the library
  1222.      search path:
  1223.  
  1224.           rr44kk
  1225.  
  1226.           rr55kk
  1227.  
  1228.           rr88kk
  1229.  
  1230.           rr1100kk
  1231.  
  1232.      _l_e_v_e_l oopptt selections indicate which optimization level to use as the
  1233.      default:
  1234.  
  1235.           00    11
  1236.  
  1237.           22    33
  1238.  
  1239.           If this is not specified, the compiler defaults to --OO00.
  1240.  
  1241.      The aarriitthh _n_u_m_b_e_r selection indicates which --OOPPTT::IIEEEEEE__aarriitthh== value to
  1242.      use as the default. Choose a number between 11 and 33.
  1243.  
  1244.      The --sshhooww__ddeeffaauullttss option can be used to print the ccoommppiilleerr..ddeeffaauullttss
  1245.      file being used and their values.  This option is for diagnostic
  1246.      purposes only; it does not compile your program.
  1247.  
  1248.      The SSGGII__AABBII environment variable overrides the ABI default in the
  1249.      ccoommppiilleerr..ddeeffaauullttss file.  In addition, explicit command line options
  1250.      can override all the defaults. For example, the following command:
  1251.  
  1252.           f77 -64 foo.c
  1253.  
  1254.           overrides a ccoommppiilleerr..ddeeffaauullttss file containing the following:
  1255.  
  1256.           -DEFAULT:abi=n32:isa=mips4:proc=r10k
  1257.  
  1258.           The command also performs the following compilation:
  1259.  
  1260.           -64 -mips4 -r10000
  1261.  
  1262.           If you used the following in the above example:
  1263.  
  1264.           f77 -o32 foo.c
  1265.  
  1266.           it will not only override the ABI and use --oo3322,, but it also
  1267.           overrides the ISA to use --mmiippss22,, because --oo3322 supports only
  1268.           --mmiippss22 and --mmiippss11 compilations. The processor type is ignored by
  1269.           --oo3322 compilations.
  1270.  
  1271. LLOOAADDEERR OOPPTTIIOONNSS
  1272.      Other arguments are assumed to be either loader options or CC
  1273.      -compatible object files, typically produced by an earlier ff7777 run, or
  1274.      libraries of CC -compatible routines.  These files, together with the
  1275.      results of any compilations specified, are loaded in the order given,
  1276.      producing an executable program with the default name aa..oouutt..
  1277.  
  1278. EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
  1279.      For information about environment variables, see the ppee__eennvviirroonn(5) man
  1280.      page.
  1281.  
  1282. BBUUGGSS
  1283.      The compiler attempts to continue after finding semantic errors.
  1284.      These errors may result in compiler internal errors.
  1285.  
  1286. NNOOTTEESS
  1287.      The standard library, //uussrr//lliibb//lliibbcc..ssoo..11, is loaded by using the --llcc
  1288.      loader option and not a full path name.   If lliibbcc..ssoo..11 is specified
  1289.      explicitly, the wrong version could be loaded if there are files with
  1290.      the name libc.so.1 in the directories specified with the --LL loader
  1291.      option or in the default directories searched by the loader.
  1292.  
  1293.      When using the Graphics Library (--llggll), you must also specify the
  1294.      Fortran Graphics Library Interface (--llffggll) on the link line.  For
  1295.      example:
  1296.  
  1297.           f77 file.f -lfgl -lgl
  1298.  
  1299.      Applications which provide their own eexxiitt function will not work with
  1300.      profiling (no profile data will be written out).
  1301.  
  1302. EEXXAAMMPPLLEESS
  1303.      The following example compiles 64-bit MIPS IV (R8000, R10000, R5000)
  1304.      code, which does not run on R4000/R4400 processors.
  1305.  
  1306.           f77 -64 -mips4 _o_t_h_e_r _o_p_t_i_o_n_s
  1307.  
  1308.      The following example compiles 64-bit ABI (MIPS 3) code, scheduled for
  1309.      best performance on the R8000 processor but not using R8000-specific
  1310.      (MIPS IV) instructions so that it will be executable on R4000/R4400
  1311.      processors.
  1312.  
  1313.           f77 -64 -TARG:proc=r8000 <other options>
  1314.  
  1315.      The following example compiles code with extensive optimization
  1316.      enabled, allowing transformations which affect floating-point round-
  1317.      off and overflow, assuming strict ANSI C aliasing rules.
  1318.  
  1319.           f77 ... -O2 -OPT:roundoff=2:alias=typed ....IP "" 5
  1320.  
  1321.      The following example compiles code with aggressive optimization
  1322.      (including software pipelining) enabled, allowing transformations with
  1323.      arbitrary effects on floating-point round-off and overflow.
  1324.  
  1325.           f77 ... -O3 -OPT:roundoff=3.PD
  1326.  
  1327. FFIILLEESS
  1328.      ffiillee..ff                             input file
  1329.  
  1330.      ffiillee..oo                             object file
  1331.  
  1332.      ffiillee..ll                             listing file
  1333.  
  1334.      aa..oouutt                              loaded output
  1335.  
  1336.      //ttmmpp//ccttmm**                          temporaries
  1337.  
  1338.      //uussrr//lliibb//ccpppp                       C macro preprocessor
  1339.  
  1340.      //uussrr//bbiinn//ccoorrdd                      procedure rearranger
  1341.  
  1342.      //uussrr//lliibb3322//ccmmppllrrss//mmffeeff7777           fortran front-end (--nn3322 and --6644)
  1343.  
  1344.      //uussrr//lliibb3322//ccmmppllrrss//bbee               code generator (--nn3322 and --6644)
  1345.  
  1346.      //uussrr//lliibb3322//ccmmppllrrss//aassmm              assembler (--nn3322 and --6644)
  1347.  
  1348.      //uussrr//lliibb**//mmccrrtt11..oo                  startup for profiling
  1349.  
  1350.      //uussrr//lliibb**//ccrrtt11..oo                   runtime startup
  1351.  
  1352.      //uussrr//lliibb**//ccrrttnn..oo                   runtime startup
  1353.  
  1354.      //uussrr//lliibb**//lliibbcc..aa                   standard library, see iinnttrroo(3)
  1355.  
  1356.      //uussrr//lliibb**//lliibbcc..ssoo..11                shared standard library
  1357.  
  1358.      //uussrr//lliibb**//lliibbffppee..aa                 floating-point exception handler
  1359.                                         library, see ssiiggffppee(3c)
  1360.  
  1361.      //uussrr//lliibb**//lliibbffttnn..ssoo                fortran runtime library
  1362.  
  1363.      //uussrr//lliibb**//lliibbggll..ssoo                 IRIS-4D shared graphics library
  1364.  
  1365.      //uussrr//lliibb**//lliibbmm..aa                   math library
  1366.  
  1367.      //uussrr//lliibb**//lliibbmm..ssoo                  shared math library
  1368.  
  1369.      //uussrr//iinncclluuddee                       standard directory for `##iinncclluuddee'
  1370.                                         files
  1371.  
  1372.      //uussrr//bbiinn//lldd                        SGI loader
  1373.  
  1374.      //uussrr//bbiinn//rraattffoorr                    rational FORTRAN dialect
  1375.                                         preprocessor
  1376.  
  1377.      mmoonn..oouutt                            file produced for analysis by
  1378.                                         pprrooff(1)
  1379.  
  1380. SSEEEE AALLSSOO
  1381.      _M_I_P_S_p_r_o _F_o_r_t_r_a_n _7_7 _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l
  1382.      _M_I_P_S_p_r_o _F_o_r_t_r_a_n _7_7 _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e
  1383.      aass(1), cccc(1), ccoolllliiddee(1), ccpppp(1), ddbbxx(1), ddiiss(1), ffoopptt(1), ffttoocc(1),
  1384.      lldd(1), nnmm(1), eellffdduummpp(1), ppiixxiiee(1), ppffaa(1), pprrooff(1), rraattffoorr(1),
  1385.      ssppeeeeddsshhoopp(1), wwhhaatt(1),
  1386.  
  1387.      ggeettaabbii(3c), ssiiggffppee(3c).
  1388.  
  1389.      llnnoo(5), oopptt(5)
  1390.  
  1391.      _M_I_P_S_P_r_o _7 _F_o_r_t_r_a_n _9_0 _C_o_m_m_a_n_d_s _a_n_d _D_i_r_e_c_t_i_v_e_s _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l,
  1392.      publication SR-3907
  1393.  
  1394.      This man page is available only online.
  1395.